VB 里提示的"下标越界"问题该如何调试?

来源:百度知道 编辑:UC知道 时间:2024/09/21 21:43:55
我做的程序经常出现"下标越界"
可是又不知道怎么调试
就像下面的程序一样

Dim n, k() As String
Dim i, j, p As Integer

Private Sub Form_CLICK()
n = InputBox("请输入姓名", "提示", , 100, 100)
i = Len(n)
For p = 1 To i
For j = 0 To i
k(p) = Mid(n, i - j, 1)
Next j
Print k(p)
Next p

End Sub
REDIM
K()为什么类型呢?
还是不对呢..

我想完成的是
单击窗体,利用输入框输入自己的姓名,然后将姓名在窗体上反向输出

后面REDIM以后打出来的字只是第一个

Dim n, k() As String
Dim i, j, p As Integer

Private Sub Form_CLICK()
n = InputBox("请输入姓名", "提示", , 100, 100)

i = Len(n)
Redim k(i)

For p = 1 To i
For j = 0 To i-1
k(p) = Mid(n, i - j, 1)
Print k(p) 'Print语句放到这里
Next j
Next p
End Sub

这里连续输出了i遍,如果只想输出一遍,改成如下:

For j = 0 To i - 1
k(j) = Mid(n, i - j, 1)
Print k(j)
Next j

Mid(n, i - j, 1)
中的i-j出现了0的情况你看好了大哥!!
从零取!!你让他从哪儿取啊!!至少也要从第1个取是不!!?
你自己好好看一下别让i 和j相等就可以嘛~!~

你的数组K()需REDIM一下

按F8单步运行调试